অ্যাপাচি HTTP ক্লায়েন্ট (Apache HTTP Client) ব্যবহার করে Query Parameters সংযোজন করা একটি সাধারণ কাজ, বিশেষ করে যখন API-তে GET অনুরোধ পাঠানো হয়। Query parameters URL-এর অংশ হিসেবে থাকে এবং সার্ভারে নির্দিষ্ট ডেটা বা ফিল্টারিং সংক্রান্ত অনুরোধ পাঠানোর জন্য ব্যবহৃত হয়।
যেমন, একটি URL-এর মধ্যে ?key1=value1&key2=value2 এইরকম শর্তে প্রেরিত তথ্য সার্ভারে পৌঁছায়।
Query Parameters এর ব্যবহার
Apache HTTP Client-এ HttpGet এর সাথে Query Parameters যুক্ত করতে URL তৈরির সময় এই পদ্ধতি ব্যবহার করা হয়।
কোড উদাহরণ: Query Parameters এর সাথে GET অনুরোধ
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.net.URI;
import java.net.http.URIBuilder;
public class ApacheHttpClientWithQueryParams {
public static void main(String[] args) {
// HttpClient তৈরি করুন
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
// URIBuilder ব্যবহার করে URL এবং Query Parameters তৈরি করা
URI uri = new URIBuilder("https://jsonplaceholder.typicode.com/posts")
.addParameter("userId", "1")
.addParameter("id", "2")
.build();
// HttpGet তৈরি করুন
HttpGet httpGet = new HttpGet(uri);
System.out.println("Executing request: " + httpGet.getRequestLine());
// অনুরোধ পাঠিয়ে প্রতিক্রিয়া সংগ্রহ করুন
CloseableHttpResponse response = httpClient.execute(httpGet);
try {
// প্রতিক্রিয়া থেকে স্ট্যাটাস কোড পান
int statusCode = response.getStatusLine().getStatusCode();
System.out.println("Response Status Code: " + statusCode);
// HttpEntity পান এবং ডেটা পড়ুন
HttpEntity entity = response.getEntity();
if (entity != null) {
// কনটেন্ট স্ট্রিং আকারে পড়ুন
String responseBody = EntityUtils.toString(entity);
System.out.println("Response Content: " + responseBody);
}
} finally {
// প্রতিক্রিয়া বন্ধ করুন
response.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// HttpClient বন্ধ করুন
httpClient.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
কোড ব্যাখ্যা
Query Parameters তৈরি করা
URI uri = new URIBuilder("https://jsonplaceholder.typicode.com/posts") .addParameter("userId", "1") .addParameter("id", "2") .build();URIBuilderব্যবহার করে URL এর সাথে Query Parameters যুক্ত করা হয়েছে। এখানেuserId=1এবংid=2দুটি প্যারামিটার যুক্ত করা হয়েছে।
HttpGet তৈরি করা
HttpGet httpGet = new HttpGet(uri);HttpGetঅবজেক্টে তৈরি করা URL (যার মধ্যে Query Parameters অন্তর্ভুক্ত) পাস করা হয়েছে।
- HTTP অনুরোধ পাঠানো এবং প্রতিক্রিয়া প্রাপ্তি
- HTTP GET অনুরোধ সার্ভারে পাঠানো হয়েছে এবং প্রতিক্রিয়া (
HttpResponse) গ্রহণ করা হয়েছে। response.getEntity()ব্যবহার করে HTTP প্রতিক্রিয়া থেকে ডেটা নেওয়া হয়েছে এবং তাEntityUtils.toString(entity)এর মাধ্যমে স্ট্রিং আকারে রূপান্তরিত করা হয়েছে।
- HTTP GET অনুরোধ সার্ভারে পাঠানো হয়েছে এবং প্রতিক্রিয়া (
- প্রতিক্রিয়া পর্যালোচনা
- সার্ভারের স্ট্যাটাস কোড এবং প্রতিক্রিয়া কন্টেন্ট পর্যালোচনা করা হয়েছে।
Query Parameters সম্পর্কে কিছু গুরুত্বপূর্ণ نکতাস:
- প্যারামিটার যুক্ত করার নিয়ম
- URL এর শেষে
?চিহ্নের মাধ্যমে প্রথম প্যারামিটার শুরু হয় এবং subsequent প্যারামিটার গুলি&দ্বারা আলাদা হয়। - উদাহরণ:
https://example.com/api?key1=value1&key2=value2
- URL এর শেষে
- প্যারামিটার নাম এবং মান
- Query Parameters সাধারণত কী-মূল্য জোড়া (key-value pair) আকারে থাকে।
key1হল প্যারামিটারের নাম এবংvalue1তার মান।
- URL এ নিরাপত্তা এবং ইনকোডিং
- Special characters, যেমন স্পেস বা
&,%,?ইত্যাদি URL এ সংযোজনের সময় এনকোড করা প্রয়োজন। URLEncoder.encode()পদ্ধতি ব্যবহার করে প্যারামিটারগুলির মান নিরাপদে এনকোড করা যেতে পারে।
- Special characters, যেমন স্পেস বা
সারাংশ
Query Parameters HTTP GET অনুরোধের মাধ্যমে সার্ভারে নির্দিষ্ট ডেটা প্রেরণের জন্য ব্যবহৃত হয়। Apache HTTP Client-এ HttpGet এবং URIBuilder ব্যবহার করে সহজেই URL-এ Query Parameters যোগ করা যায়। এই পদ্ধতি API কলের সময় বিভিন্ন ধরনের ফিল্টারিং বা ডেটা অনুসন্ধান কার্যকর করতে সাহায্য করে।